package controllers

import (
    "github.com/gin-gonic/gin"
    "hitme/go-api/logic/form"
    "hitme/go-api/logic/services"
    "hitme/go-api/modules/response"
    "hitme/go-api/modules/utils"
)

type photoSpecController struct {

}

var PhotoSpecController photoSpecController

// GetList 获取列表
func (w *photoSpecController) GetList (c *gin.Context)  {
    // 获取参数并校验字段
    req := form.PhotoSpecGetListReqForm{}
    if err := c.ShouldBind(&req); err != nil {
        utils.HandleValidatorError(c, err)
        return
    }

    res, err := services.PhotoSpecService.GetList(c, req)

    if err != nil {
        response.Err(c, 400, 400, err.Error())
    } else {
        response.Success(c, 200, res)
    }
}

// GetListByCate 获取列表
func (w *photoSpecController) GetCateList (c *gin.Context)  {
    // 获取参数并校验字段
    req := form.PhotoSpecGetCateListReqForm{}
    if err := c.ShouldBind(&req); err != nil {
        utils.HandleValidatorError(c, err)
        return
    }

    res, err := services.PhotoSpecService.GetCateList(c, req)

    if err != nil {
        response.Err(c, 400, 400, err.Error())
    } else {
        response.Success(c, 200, res)
    }
}

// GetListByCate 获取列表
func (w *photoSpecController) GetListByCate (c *gin.Context)  {
    // 获取参数并校验字段
    req := form.PhotoSpecGetListByCateReqForm{}
    if err := c.ShouldBind(&req); err != nil {
        utils.HandleValidatorError(c, err)
        return
    }

    res, err := services.PhotoSpecService.GetListByCate(c, req)

    if err != nil {
        response.Err(c, 400, 400, err.Error())
    } else {
        response.Success(c, 200, res)
    }
}

// CutCheckPic 制作并检测证件照
func (w *photoSpecController) CutCheckPic (c *gin.Context)  {
    // 获取参数并校验字段
    req := form.PhotoSpecCutCheckPicReqForm{}
    if err := c.ShouldBind(&req); err != nil {
        utils.HandleValidatorError(c, err)
        return
    }

    res, err := services.PhotoSpecService.CutCheckPic(c, req)

    if err != nil {
        response.Err(c, 400, 400, err.Error())
    } else {
        response.Success(c, 200, res)
    }
}

// CutChangeClothes 剪裁换正装
func (w *photoSpecController) CutChangeClothes (c *gin.Context)  {
    // 获取参数并校验字段
    req := form.PhotoSpecCutChangeClothesReqForm{}
    if err := c.ShouldBind(&req); err != nil {
        utils.HandleValidatorError(c, err)
        return
    }

    res, err := services.PhotoSpecService.CutChangeClothes(c, req)

    if err != nil {
        response.Err(c, 400, 400, err.Error())
    } else {
        response.Success(c, 200, res)
    }
}

// EnvPic 环境检测
func (w *photoSpecController) EnvPic (c *gin.Context)  {
    // 获取参数并校验字段
    req := form.PhotoSpecEnvPicReqForm{}
    if err := c.ShouldBind(&req); err != nil {
        utils.HandleValidatorError(c, err)
        return
    }

    res, err := services.PhotoSpecService.EnvPic(c, req)

    if err != nil {
        response.Err(c, 400, 400, err.Error())
    } else {
        response.Success(c, 200, res)
    }
}

//// CutPic 制作证件照
//func (w *photoSpecController) CutPic (c *gin.Context)  {
//    // 获取参数并校验字段
//    req := form.PhotoSpecCutPicReqForm{}
//    if err := c.ShouldBind(&req); err != nil {
//        utils.HandleValidatorError(c, err)
//        return
//    }
//
//    res, err := services.PhotoSpecService.CutPic(c, req)
//
//    if err != nil {
//        response.Err(c, 400, 400, err.Error())
//    }
//    response.Success(c, 200, res)
//}

//// GetList 获取带水印图片
//func (w *photoSpecController) GetList (c *gin.Context)  {
//    // 获取参数并校验字段
//    req := form.PhotoSpecGetListReqForm{}
//    if err := c.ShouldBind(&req); err != nil {
//        utils.HandleValidatorError(c, err)
//        return
//    }
//
//    res, err := services.PhotoSpecService.GetList(c, req)
//
//    if err != nil {
//        response.Err(c, 400, 400, err.Error())
//    }
//    response.Success(c, 200, res)
//}
//
//// GetList 获取无水印图片
//func (w *photoSpecController) GetList (c *gin.Context)  {
//    // 获取参数并校验字段
//    req := form.PhotoSpecGetListReqForm{}
//    if err := c.ShouldBind(&req); err != nil {
//        utils.HandleValidatorError(c, err)
//        return
//    }
//
//    res, err := services.PhotoSpecService.GetList(c, req)
//
//    if err != nil {
//        response.Err(c, 400, 400, err.Error())
//    }
//    response.Success(c, 200, res)
//}

// GetList 同时获取无水印单张和排版图片
//func (w *photoSpecController) GetList (c *gin.Context)  {
//    // 获取参数并校验字段
//    req := form.PhotoSpecGetListReqForm{}
//    if err := c.ShouldBind(&req); err != nil {
//        utils.HandleValidatorError(c, err)
//        return
//    }
//
//    res, err := services.PhotoSpecService.GetList(c, req)
//
//    if err != nil {
//        response.Err(c, 400, 400, err.Error())
//    }
//    response.Success(c, 200, res)
//}